#include <stdio.h>
#include <unistd.h>
#include <math.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <time.h>
#include <errno.h>
#include <string.h>
#include <stdarg.h>
#include <signal.h>
#include <sys/wait.h>
#include <sys/select.h>
#include <poll.h>

#define MAXLINE 4096
// #define MAXLINE 10

#define	min(a,b)	((a) < (b) ? (a) : (b))
#define	max(a,b)	((a) > (b) ? (a) : (b))

typedef void SigFunc(int);

void err_sys(const char* fmt, ...);
void err_exit(const char* fmt, ...);
void err_msg(const char* fmt, ...);

int  Write(int fd, const char* buf, int len);
int  Read(int fd, char* buf, int len);
int  Writen(int fd, const char* buf, int len);
int  Readn(int fd, char* buf, int len);

SigFunc* Signal(int signum, SigFunc* func);

